package com.big.app.service.impl;

import com.big.app.bo1.Paybo;
import com.big.app.dao.PlaydetailDao;
import com.big.app.entity.Pay;
import com.big.app.service.intf.PayService;
import com.big.app.util.AliPayUtils;
import com.big.app.util.StringUtils;
import com.big.app.vo1.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Random;

/**
 * //       @author  GQ
 * //
 * //                .-~~~~~~~~~-._       _.-~~~~~~~~~-.
 * //            __.'              ~.   .~              `.__
 * //          .'//                  \./                  \\`.
 * //        .'//                     |                     \\`.
 * //      .'// .-~"""""""~~~~-._     |     _,-~~~~"""""""~-. \\`.
 * //    .'//.-"                 `-.  |  .-'                 "-.\\`.
 * //  .'//______.============-..   \ | /   ..-============.______\\`.
 * //.'______________________________\|/______________________________`.
 */
@Service
public class PayServiceImpl implements PayService {
    @Autowired
    private PlaydetailDao dao;

    @Override
    public R createPay(Paybo bo) {
        //1.验证参数
        if(bo!=null){
            //2.生成 订单号 长的
            String no=createNo();
            //构建支付对象
            AliPayUtils.AliPay pay=new AliPayUtils.AliPay(no, bo.getMoney(), bo.getTitle());
            //发起支付
            String content= AliPayUtils.createPay(pay);
            if(StringUtils.isNoyEmpty(content)){
                //创建支付成功
                //存储到数据库
                Pay obj=new Pay( bo.getType(),bo.getMoney(),no);
                dao.insert1(obj);
                //返回 - 支付宝生成的表单内容
                return R.ok(content);
            }
        }
        return R.fail("网络异常！");
    }

    private String createNo(){
        return System.currentTimeMillis()+"_"+new Random().nextInt(1000);
    }
}
